function onEvalClinicaLoad(){
    initEvalClinicasDetailUI();

    //Listeners para cambio de paciente
    pacienteModel.removeIdChangedListener(pacienteDetailSelect, pacienteDetailUI);
    pacienteModel.removeIdChangedListener(pacienteEvaluacionSelect, evaluacionesModel);
    pacienteModel.removeIdChangedListener(pacienteRiesgoSelect, riesgosModel);
    pacienteModel.removeIdChangedListener(pacienteFormulaDesarrolladaSelect, formulasDesarrolladasModel);
    pacienteModel.removeIdChangedListener(pacienteToleranciaSelect, toleranciaModel);
    pacienteModel.removeIdChangedListener(pacienteAlimentacionHabitualSelect, alimentacionHabitualModel);
    
    pacienteModel.addIdChangedListener(pacienteEvalClinicaSelect, evalClinicasModel);

    //Listeners para valoración de evaluación clínica seleccionada
    evalClinicasModel.removeIdChangedListener(evalClinicaDetailSelect, evalClinicasDetailUI);
    evalClinicasModel.addIdChangedListener(evalClinicaDetailSelect, evalClinicasDetailUI);

    // Listener para recargar las valoraciones del paciente
    evalClinicasModel.removeOnSaveListener(cargarEvalClinicasPacienteActual, {});
    evalClinicasModel.addOnSaveListener(cargarEvalClinicasPacienteActual, {});

    //Listeners para agregado de evaluación clínica
    evalClinicasDetailUI.removeOnAddListener(onAddEvalClinica, evalClinicasDetailUI);
    evalClinicasDetailUI.addOnAddListener(onAddEvalClinica, evalClinicasDetailUI);

    evalClinicasModel.setColumnValue("ValoracionEvalClinicaPaciente", "paciente_id", pacienteModel.idColumn.value);
    evalClinicasModel.setFilter("ValoracionEvalClinicaPaciente", "paciente_id", pacienteModel.idColumn.value);

    cargarEvalClinicasPacienteActual();

    evalClinicasDetailUI.add();

    $("button").button();

    $("#btnReporte").click(mostrarReporte);

}

function mostrarReporte(){
    $("#divReporte").load(
    webRoot+"eval_clinicas/getReport/"+pacienteModel.idColumn.value,
    function(){
        $("#divReporte").dialog({width: 680});
    });
}

function initEvalClinicasDetailUI(){
    evalClinicasModel.clearColumns();

    evalClinicasModel.removeIdChangedListener(evalClinicaDetailSelect, evalClinicasDetailUI);
    evalClinicasDetailUI = new DetailUI("Evaluación Clínico – Nutricional");
    
    evalClinicasDetailUI.setModel(evalClinicasModel);
    evalClinicasDetailUI.setTitleContainer(document.getElementById("eval_clinicas_detail_title"));
    evalClinicasDetailUI.setMessageContainer(document.getElementById("errorMessage"));

    evalClinicasDetailUI.setAddButton(document.getElementById("add_eval_clinica"));
    evalClinicasDetailUI.setEditButton(document.getElementById("edit_eval_clinica"));
    evalClinicasDetailUI.setDelButton(document.getElementById("del_eval_clinica"));

    evalClinicasDetailUI.setOkButton(document.getElementById("sbtguardar"));

    evalClinicasModel.addColumn("ValoracionEvalClinicaPaciente", "paciente_id", "string", 1, false);
    evalClinicasDetailUI.addField(document.getElementById("fecha"), "ValoracionEvalClinicaPaciente", "fecha", "date", 10, false);

    $("input[type=checkbox]").each(function(){
        evalClinicasDetailUI.addField(document.getElementById($(this).attr("id")), "ValoracionEvalClinicaPaciente", $(this).attr("id"), "string", 1, true);
        $(this).attr("value", "0");
        evalClinicasModel.setColumnValue("ValoracionEvalClinicaPaciente", $(this).attr("id"), "0");
        
        $(this).click(function(){
           if($(this).attr("checked") == true){
               $(this).attr("value", "1");
               evalClinicasModel.setColumnValue("ValoracionEvalClinicaPaciente", $(this).attr("id"), "1");
           }else{
               $(this).attr("value", "0");
               evalClinicasModel.setColumnValue("ValoracionEvalClinicaPaciente", $(this).attr("id"), "0");
           }
        });
    });

    $("#textos").accordion({ 
        autoHeight: false,
        change: function(){
            var active = $("#textos").find(".ui-accordion-content").get($("#textos").accordion("option","active"));
            var area = $(active).find("textarea");
            if($(area).cleditor()[0] != undefined){
                $(area).cleditor()[0].refresh();
            }
        }
    });

    /*$("textarea").each(function(){
       $(this).cleditor();
    });*/

    evalClinicasDetailUI.addField(document.getElementById("patologias"), "ValoracionEvalClinicaPaciente", "patologias", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("objetivos"), "ValoracionEvalClinicaPaciente", "objetivos", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("via_alimentacion"), "ValoracionEvalClinicaPaciente", "via_alimentacion", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("prescripcion"), "ValoracionEvalClinicaPaciente", "prescripcion", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("motivo_consulta"), "ValoracionEvalClinicaPaciente", "motivo_consulta", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("farmacos"), "ValoracionEvalClinicaPaciente", "farmacos", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("cirugias"), "ValoracionEvalClinicaPaciente", "cirugias", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("laboratorio"), "ValoracionEvalClinicaPaciente", "laboratorio", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("antecedentes"), "ValoracionEvalClinicaPaciente", "antecedentes", "string", 1, true);
    evalClinicasDetailUI.addField(document.getElementById("historial"), "ValoracionEvalClinicaPaciente", "historial", "string", 1, true);
}

function pacienteEvalClinicaSelect(id, context){
    evalClinicasDetailUI.add();

    context.setColumnValue("ValoracionEvalClinicaPaciente", "paciente_id", id);
    context.setFilter("ValoracionEvalClinicaPaciente", "paciente_id", id);

    context.idColumn.value = undefined;

    $("input[type=checkbox]").each(function(){
        $(this).attr("value", "0");
        $(this).removeAttr("checked");
        evalClinicasModel.setColumnValue("ValoracionEvalClinicaPaciente", $(this).attr("id"), "0");
        evalClinicasModel.setColumnValue("ValoracionEvalClinicaPaciente", $(this).attr("id"), "0");

    });

    cargarEvalClinicaPacientes(id);
}

function evalClinicaDetailSelect(id, context){
    context.edit();
}

function onAddEvalClinica(context){
    evalClinicasModel.idColumn.value = undefined;
    setFechaActual("fecha");
    $("#evaluaciones").val("0");
}

function cargarEvalClinicasPacienteActual(){
    cargarEvalClinicaPacientes(pacienteModel.idColumn.value);
}

function cargarEvalClinicaPacientes(id){
    //getEvaluacionesPaciente
    $.getJSON(webRoot+"ValoracionEvalClinicaPacientes/getEvaluacionesPaciente/"+id+"/"+Math.random()*100, {}, function(data){
        var html = "<option value='0'>-</option>";
        for(var key in data.data){
            html += "<option value='"+key+"'>"+formatDate(data.data[key])+"</option>";
        }

        $('#evaluaciones').html(html);

        if(evalClinicasModel.idColumn.value != undefined){
            $('#evaluaciones').val(evalClinicasModel.idColumn.value);
        }
    });

    $('#evaluaciones').change(function(){
        if(Number($(this).val()) > 0){
            evalClinicasModel.setEntityId($(this).val());
        }else{
            evalClinicasDetailUI.add();
            evalClinicasModel.idColumn.value = undefined;
        }
    });
}